Matlab使用rand函数随机生成数字或矩阵 | 您所在的位置:网站首页 › matlab rand函数范围 › Matlab使用rand函数随机生成数字或矩阵 |
4.3 (3) 今天,古哥给大家带来Matlab中可以随机生成数字得函数rand得使用方法,rand函数可以生成均匀分布得随机数、随机矩阵、随机数组等。 本文主要讲解rand函数得常见用法、语法说明、由随机数组成的矩阵、指定区间内的随机数、随机整数、随机复数、重置随机数生成器、由随机数组成的三维数组、指定随机数的数据类型、根据现有数组克隆大小、根据现有数组克隆大小和数据类型、克隆分布式数组等用法。 常见用法X = rand X = rand(n) X = rand(sz1,...,szN) X = rand(sz) X = rand(___,typename) X = rand(___,'like',p) X = rand(s,___)语法说明X = rand 返回一个在区间 (0,1) 内均匀分布的随机数。 X = rand(n) 返回一个 n×n 的随机数矩阵。 X = rand(sz1,…,szN) 返回由随机数组成的 sz1×…×szN 数组,其中 sz1,…,szN 指示每个维度的大小。例如:rand(3,4) 返回一个 3×4 的矩阵。 X = rand(sz) 返回由随机数组成的数组,其中大小向量 sz 指定 size(X)。例如:rand([3 4]) 返回一个 3×4 的矩阵。 X = rand(_,typename) 返回由 typename 数据类型的随机数组成的数组。typename 输入可以是 ‘single’ 或 ‘double’。您可以使用上述语法中的任何输入参数。 X = rand(_,’like’,p) 返回由 p 等随机数组成的数组;也就是与 p 同一对象类型。您可以指定 typename 或 ‘like’,但不能同时指定两者。 X = rand(s,_) 从随机数流 s 而不是默认全局流生成数字。要创建一个流,请使用 RandStream。指定 s,后跟上述语法中的任意参数组合,但涉及 ‘like’ 的组合除外。此语法不支持 ‘like’ 输入。 由随机数组成的矩阵生成一个由介于 0 和 1 之间的均匀分布的随机数组成的 5×5 矩阵。 r = rand(5)输出结果如下: r = 0.8147 0.0975 0.1576 0.1419 0.6557 0.9058 0.2785 0.9706 0.4218 0.0357 0.1270 0.5469 0.9572 0.9157 0.8491 0.9134 0.9575 0.4854 0.7922 0.9340 0.6324 0.9649 0.8003 0.9595 0.6787指定区间内的随机数生成一个由区间 (-5,5) 内均匀分布的数字组成的 10×1 列向量。 r = -5 + (5+5)*rand(10,1)输出如下结果: r = 2.5774 2.4313 -1.0777 1.5548 -3.2881 2.0605 -4.6817 -2.2308 -4.5383 -4.0287一般来说,可以使用公式 r = a + (b-a).*rand(N,1) 生成区间 (a,b) 内的 N 个随机数。 随机整数使用 randi 函数(而不是 rand)生成在 10 和 50 之间均匀分布的 5 个随机整数。 r = randi([10 50],1,5)输出如下结果: r = 43 38 23 48 11随机复数生成一个实部和虚部位于区间 (0,1) 内的随机复数。 a = rand + 1i*rand输出如下结果: a = 0.4387 + 0.3816i重置随机数生成器保存随机数生成器的当前状态并创建一个由随机数组成的 1×5 向量。 s = rng; r = rand(1,5)输出如下结果: r = 0.7655 0.7952 0.1869 0.4898 0.4456将随机数生成器的状态恢复为 s,然后创建一个由随机数组成的新 1×5 向量。值与之前相同。 rng(s); r1 = rand(1,5)输出结果如下: r1 = 0.7655 0.7952 0.1869 0.4898 0.4456始终使用 rng函数(而不是 rand 或 randn 函数)指定随机数生成器的设置。 由随机数组成的三维数组创建一个由随机数组成的 3×2×3 数组。 X = rand([3,2,3])输出结果如下: X(:,:,1) = 0.6463 0.2760 0.7094 0.6797 0.7547 0.6551 X(:,:,2) = 0.1626 0.9597 0.1190 0.3404 0.4984 0.5853 X(:,:,3) = 0.2238 0.5060 0.7513 0.6991 0.2551 0.8909指定随机数的数据类型创建一个由其元素为单精度值的随机数组成的 1×4 向量。 r = rand(1,4,'single')输出结果如下: r = 0.9593 0.5472 0.1386 0.1493class(r)输出结果如下: ans = single根据现有数组克隆大小创建一个由正态分布的随机数组成并且大小与现有数组相同的矩阵。 A = [3 2; -2 1]; sz = size(A); X = rand(sz)输出结果如下: X = 0.2575 0.2543 0.8407 0.8143这里,我们也可以换一种简便写法,一种将前两行代码合并成一行的常见模式: X = rand(size(A));根据现有数组克隆大小和数据类型创建一个由单精度随机数组成的 2×2 矩阵。 p = single([3 2; -2 1]);创建一个与 p 具有相同大小和数据类型的由随机数组成的数组。 X = rand(size(p),'like',p)输出如下结果: X = 0.2435 0.3500 0.9293 0.1966class(X)输出如下结果: ans = single克隆分布式数组如果您拥有 Parallel Computing Toolbox™,请创建一个由 single 基础数据类型的随机数组成的 1000×1000 分布式数组。对于 distributed 数据类型,’like’ 语法除了克隆主数据类型,还克隆基础数据类型。 p = rand(1000,'single','distributed');工作区输出如下结果: Starting parallel pool (parpool) using the 'local' profile ... connected to 4 workers.创建一个与 p 具有相同大小、主数据类型和基础数据类型的由随机数组成的数组。 X = rand(size(p),'like',p);class(X)输出如下结果: ans = distributedunderlyingType(X)ans = 'single'上面得underlyingType函数在我这里无法运行,因为我没装Parallel Computing Toolbox™。 共计3人评分,平均4.3分 到目前为止还没有投票~ 很抱歉,这篇文章对您没有用! 让我们改善这篇文章! 告诉我们我们如何改善这篇文章? 本文来自转载,原文出处:MathWorks官网,由古哥整理发布 如若转载,请注明出处:https://iymark.com/program/matlab-function-rand.html |
CopyRight 2018-2019 实验室设备网 版权所有 |